package tasklog

// 任务日志

import (
	"github.com/kataras/iris/context"
	"app/models"
	"until/logger"
	"until/urldata"
	"app/controller/base"
)

func List(ctx context.Context) {
	logModel := new(models.TaskLog)
	queryParams := parseQueryParams(ctx)
	hosts, err := logModel.List(queryParams)
	if err != nil {
		logger.Error(err)
		ctx.JSON(urldata.RetFail("错误"))
		return

	}
	ctx.JSON(urldata.RetSuccess(hosts))
}

// 清空日志
func Clear(ctx context.Context) {
	taskLogModel := new(models.TaskLog)
	_, err := taskLogModel.Clear()
	if err != nil {
		ctx.JSON(urldata.RetFail("清除失败"))
		return
	}
	ctx.JSON(urldata.RetSuccess("清除成功"))
}

// 删除N个月前的日志
func Del(ctx context.Context){
	month,err:=ctx.Params().GetInt("month")
	if err!=nil||month < 1 || month > 12 {
		ctx.JSON(urldata.RetFail("参数取值范围1-12"))
		return
	}
	taskLogModel := new(models.TaskLog)
	_, err= taskLogModel.Remove(month)
	if err != nil {
		ctx.JSON(urldata.RetFail("删除失败"))
		return
	}
	ctx.JSON(urldata.RetSuccess("删除成功"))
}

// 解析查询参数
func parseQueryParams(ctx context.Context) models.CommonMap {
	var params models.CommonMap = models.CommonMap{}
	params["TaskId"],_ = ctx.PostValueInt("task_id")
	params["Protocol"] ,_= ctx.PostValueInt("protocol")
	status ,_:=ctx.PostValueInt("status")
	if status >= 0 {
		status -= 1
	}
	params["Status"] = status
	base.ParsePageAndPageSize(ctx, params)
	return params
}
